home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
magicstr.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
4KB
|
92 lines
(*----------------------------------------------------------------------*
* *
* MAGIC Modula's All purpose GEM Interface Cadre *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
* licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
* ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
* Genehmigung des Autors! *
* *
* Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
* zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
* besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
* durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
* behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
* von Grnden zu widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* MagicStrings Stringverarbeitung *
*----------------------------------------------------------------------*)
DEFINITION MODULE MagicStrings;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
TYPE STRING = ARRAY [0..255] OF CHAR;
PROCEDURE Length (REF str: ARRAY OF CHAR): sCARDINAL;
(* Lnge eines Strings *)
PROCEDURE Pos (REF substr, str: ARRAY OF CHAR;
start: sCARDINAL; dowild: BOOLEAN): sCARDINAL;
(* Position von substr in str. Wenn nicht gefunden retouniert die
* Prozedur SIZE (str) + 1!!! Im Zuge der Umbauarbeiten der Prozedur
* wurde das Feature eingebaut, da in substr auch WILDCARDS und JOKER
* enthalten sein knnen. Als Joker wurde '?' und als Wildcard '*'
* vereinbart. Nur wenn dowild als TRUE bergeben wird!!!
* In "Hallo, hier bin ich" (str) kann man nun auch folgendes finden:
* p:= Pos ('hier', str, 0, TRUE); (* p = 7 *)
* p:= Pos ('*i*i', str, 0, TRUE); (* p = 0 *)
* p:= Pos ('?i? ', str, 0, TRUE); (* p = 8 *)
*)
PROCEDURE Insert (REF substr: ARRAY OF CHAR; VAR str: ARRAY OF CHAR; index: sCARDINAL);
(* Fgt substr in str ab index ein *)
PROCEDURE Delete (VAR str: ARRAY OF CHAR; index, len: sCARDINAL);
(* Lscht len Zeichen ab index aus str *)
PROCEDURE Append (REF substr: ARRAY OF CHAR; VAR str: ARRAY OF CHAR);
(* Hngt substr an str an *)
PROCEDURE Copy (REF str: ARRAY OF CHAR; index, len: sCARDINAL;
VAR result: ARRAY OF CHAR);
(* Kopiert len Zeichen ab index von str nach result *)
PROCEDURE CAPS (VAR str: ARRAY OF CHAR);
(* Wandelt alle Zeichen in str in Grobuchstaben.
* Dazu wird MagicStrings.Cap verwendet, welches auch Sonderzeichen wie
* wandelt.
*)
PROCEDURE Equal (REF s1, s2: ARRAY OF CHAR): BOOLEAN;
(* TRUE, wenn s1 = s2 *)
TYPE Relation = (less, equal, greater);
PROCEDURE Compare (REF s1, s2: ARRAY OF CHAR): Relation;
(* Vergleicht s1 mit s2 *)
PROCEDURE Assign (REF quelle: ARRAY OF CHAR; VAR ziel: ARRAY OF CHAR);
(* Weit den Inhalt von quelle ziel zu (ziel:= quelle) *)
PROCEDURE Cap (ch: CHAR): CHAR;
(* Wie CAP, wandelt auch Umlaute und Sonderzeichen *)
END MagicStrings.